package com.synergy.stockflow.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
    * 编号规则段表
    */
@Schema(description="编号规则段表")
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "sys_code_rule_segment")
public class SysCodeRuleSegment {
    /**
     * 主键编号
     */
    @TableId(value = "segment_id", type = IdType.ASSIGN_ID)
    @Schema(description="主键编号")
    private Long segmentId;

    /**
     * 关联sys_code_rule.rule_id
     */
    @TableField(value = "rule_id")
    @Schema(description="关联sys_code_rule.rule_id")
    private Long ruleId;

    /**
     * 排序拼接位置
     */
    @TableField(value = "segment_seq")
    @Schema(description="排序拼接位置")
    private Integer segmentSeq;

    /**
     * 内容生成方式【PREFIX（固定前缀），DATE（日期类型），COUNTER（流水号），CUSTOM（自定义字符串），SUFFIX（后缀）】
     */
    @TableField(value = "segment_type")
    @Schema(description="内容生成方式【PREFIX（固定前缀），DATE（日期类型），COUNTER（流水号），CUSTOM（自定义字符串），SUFFIX（后缀）】")
    private String segmentType;

    /**
     * 具体内容
     */
    @TableField(value = "content")
    @Schema(description="具体内容")
    private String content;

    /**
     * 长度,用于补零
     */
    @TableField(value = "`length`")
    @Schema(description="长度,用于补零")
    private Integer length;

    /**
     * 流水号重置周期
     */
    @TableField(value = "counter_reset_cycle")
    @Schema(description="流水号重置周期")
    private String counterResetCycle;

    /**
     * 该规则段的说明，如·月份流水号，从每月1号开始·
     */
    @TableField(value = "description")
    @Schema(description="该规则段的说明，如·月份流水号，从每月1号开始·")
    private String description;
}